Skip to content

Conversation

@wineee
Copy link
Member

@wineee wineee commented Feb 10, 2026

  1. Upgrade from treeland-prelaunch-splash-v1 to v2 protocol
  2. Generate instance UUID early for splash association
  3. Track splash objects per instance ID for proper lifecycle management
  4. Add closeSplashForInstance and closeAllSplashes methods
  5. Implement proper cleanup of splash objects in destructor

Log: Added support for treeland prelaunch splash manager v2 with instance-based splash management

Influence:

  1. Test application launch with prelaunch splash display
  2. Verify splash closes when instance is removed normally
  3. Test multiple instances of same application with separate splashes
  4. Verify splash cleanup during application manager shutdown
  5. Test client crash scenarios to ensure orphaned splashes are cleaned up
  6. Validate Wayland protocol compatibility with updated v2 interface

feat: 支持 treeland 预启动闪屏管理器 v2

  1. 从 treeland-prelaunch-splash-v1 升级到 v2 协议
  2. 提前生成实例 UUID 用于闪屏关联
  3. 按实例 ID 跟踪闪屏对象以实现正确的生命周期管理
  4. 添加 closeSplashForInstance 和 closeAllSplashes 方法
  5. 在析构函数中实现闪屏对象的正确清理

Log: 新增支持 treeland 预启动闪屏管理器 v2,支持基于实例的闪屏管理

Influence:

  1. 测试应用程序启动时的预启动闪屏显示
  2. 验证实例正常移除时闪屏正确关闭
  3. 测试同一应用程序多个实例的独立闪屏管理
  4. 验证应用程序管理器关闭时的闪屏清理
  5. 测试客户端崩溃场景确保孤儿闪屏被清理
  6. 验证与更新 v2 接口的 Wayland 协议兼容性

Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry @wineee, you have reached your weekly rate limit of 500000 diff characters.

Please try again later or upgrade to continue using Sourcery

@deepin-ci-robot
Copy link

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@deepin-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: wineee

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds support for the treeland prelaunch splash manager v2 protocol by associating splashes with application instance IDs and managing their lifecycle alongside instance creation/removal.

Changes:

  • Switch Wayland protocol generation and helper implementation from prelaunch-splash v1 to v2.
  • Generate and propagate an instance UUID early so the compositor can associate a splash with a specific instance.
  • Track and close splash objects per instance, including bulk cleanup on instance detachment and helper destruction.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
src/dbus/prelaunchsplashhelper.h Updates helper API to v2 and adds per-instance splash object tracking.
src/dbus/prelaunchsplashhelper.cpp Implements v2 create/close logic and destructor cleanup for tracked splash objects.
src/dbus/applicationservice.h Adds tracking for splash instance IDs and declares new cleanup helpers.
src/dbus/applicationservice.cpp Generates instance UUID earlier, shows splash with instance association, and closes splashes on instance lifecycle events.
src/dbus/CMakeLists.txt Switches generated Wayland protocol sources from v1 XML to v2 XML.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +118 to +131
auto *splash = new QtWayland::treeland_prelaunch_splash_v2();
splash->init(create_splash(appId, instanceId, QStringLiteral("dde-application-manager"), buffer));
m_splashObjects.insert(instanceId, splash);
qCInfo(amPrelaunchSplash, "Sent create_splash for %s instance %s %s",
Copy link

Copilot AI Feb 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

m_splashObjects.insert(instanceId, splash) will overwrite any existing entry for the same instanceId without destroying/deleting the previous splash object, which leaks the wrapper and may leave the compositor-side splash undisposed. Handle the "already has splash for this instance" case by closing/replacing safely before inserting.

Copilot uses AI. Check for mistakes.
1. Upgrade from treeland-prelaunch-splash-v1 to v2 protocol
2. Generate instance UUID early for splash association
3. Track splash objects per instance ID for proper lifecycle management
4. Add closeSplashForInstance and closeAllSplashes methods
5. Implement proper cleanup of splash objects in destructor

Log: Added support for treeland prelaunch splash manager v2 with
instance-based splash management

Influence:
1. Test application launch with prelaunch splash display
2. Verify splash closes when instance is removed normally
3. Test multiple instances of same application with separate splashes
4. Verify splash cleanup during application manager shutdown
5. Test client crash scenarios to ensure orphaned splashes are cleaned
up
6. Validate Wayland protocol compatibility with updated v2 interface

feat: 支持 treeland 预启动闪屏管理器 v2

1. 从 treeland-prelaunch-splash-v1 升级到 v2 协议
2. 提前生成实例 UUID 用于闪屏关联
3. 按实例 ID 跟踪闪屏对象以实现正确的生命周期管理
4. 添加 closeSplashForInstance 和 closeAllSplashes 方法
5. 在析构函数中实现闪屏对象的正确清理

Log: 新增支持 treeland 预启动闪屏管理器 v2,支持基于实例的闪屏管理

Influence:
1. 测试应用程序启动时的预启动闪屏显示
2. 验证实例正常移除时闪屏正确关闭
3. 测试同一应用程序多个实例的独立闪屏管理
4. 验证应用程序管理器关闭时的闪屏清理
5. 测试客户端崩溃场景确保孤儿闪屏被清理
6. 验证与更新 v2 接口的 Wayland 协议兼容性
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants